/**
 * 
 */
package com.yidu.erp.action.BeyondDesign;

import java.text.ParseException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.common.Pages;
import com.yidu.common.SsmMessage;
import com.yidu.common.Tools;
import com.yidu.erp.model.BeyondDesignmx;
import com.yidu.erp.model.BeyondProdesign;
import com.yidu.erp.model.BeyondStaff;
import com.yidu.erp.model.BeyondWare;
import com.yidu.erp.service.fdpurchase.FdproFormService;
import com.yidu.erp.service.jihua.BeyondDesignmxService;
import com.yidu.erp.service.jihua.BeyondProdesignService;
import com.yidu.erp.service.stock.StockService;


/**
 * @author hujiaqian
 * 生产计划
 * 2017年10月24日
 */
@Controller
@RequestMapping("dProdesign")
public class BeyondProdesignAction {
	@Resource
	private BeyondProdesignService beyondProdesignServic;

	@Resource
	private FdproFormService fdproForm;

	@Resource
	private StockService stockService;
	
	

	
	
	@Resource
	private BeyondDesignmxService jhmx;
	/**
	 * @author  hujiaqian
	 * 显示配料表
	 * @param wareId
	 * @param num
	 * @return
	 */
	@RequestMapping("/plshow")
	@ResponseBody
	public Map<String, Object> plshow(String wareId, int num){
		System.out.println("=============="+wareId);
		System.out.println("=============="+num);
		return stockService.isEnough(wareId, num);//返回传入的ID和数量
		
		
	}
	
	/**
	 * @author  hujiaqian
	 * 显示生产计划
	 * @param param 参数
	 * @param limit	当前页数	
	 * @param page	最大行数
	 * @return
	 */
	@RequestMapping("/showList")
	@ResponseBody
	public Map<String,Object> annexShow(@RequestParam Map<String, Object> param,String designEmetime, int limit, int page){
		System.out.println("=============aaa"+designEmetime);
		Pages pages = new Pages();//new 一个分类的页面
		pages.setMaxResult(limit);//加入当前页数
		pages.setCurPage(page);//加入最大行数
		param.put("pages", pages);

		return  beyondProdesignServic.selectAll(param);//返回集合的参数
	}

	/**
	 * 根据ID查询审核状态
	 * @param designId
	 * @return
	 */ 

	/**@RequestMapping("/update")
	@ResponseBody
	public SsmMessage update(String designId){
		SsmMessage ssm = new SsmMessage();
		BeyondProdesign record=new BeyondProdesign();
		record.setDesignId(designId);
		record.setDesignIsvo("fdcg001");
		int rows = beyondProdesignServic.updateBy(record);
		if(rows>0){
			ssm.setState(1);
			ssm.setMes("已审核");	
		}else{
			ssm.setState(0);
			ssm.setMes("未审核");
		}


		return ssm;


	}*/


	/**
	 * @author  hujiaqian
	 * 增加生产计划
	 * @param beyondProdesign
	 * @return
	 * @throws ParseException 
	 */

	@RequestMapping("/showAdd")
	@ResponseBody
	public SsmMessage showAdd(BeyondProdesign prodes,String test5,HttpSession session) throws ParseException{

		
		String tests[] = test5.split(" - ");//分割传入的值
		prodes.setDesignEmetime(Tools.strToDateLong(tests[0]));//把字符串转为时间格式加入计划开始时间

		prodes.setDesignEndtime(Tools.strToDateLong(tests[1]));//把字符串转为时间格式加入计划结束时间

		
		SsmMessage ssm = new SsmMessage();//new一个消息的方法
		
		BeyondStaff staff=(BeyondStaff) session.getAttribute("staff");//从session取人员的名字

		prodes.setStaff(staff);//加入名字

		Date date=new Date();//new一个时间
	
		System.out.println("10000"+prodes.getDesignEmetime());
		
		String number=Tools.getDateOrderNo();//计划编号
		
		prodes.setDesignNumber(number);//设置计划编号
	
		prodes.setDesignIsvo("0");//审核状态默认为0
		
		int rows=beyondProdesignServic.insertSelective(prodes);//调用生产计划对象查询的方法

		System.out.println("============工作"+rows);
		//增加分店采购明细
		String fdMxtab=prodes.getTabstr().replaceAll(" ", "");//去掉空格

		
		String tr[]=fdMxtab.split("_");//分割出每行tr的数据
		
		for (int i = 0; i < tr.length; i++) {//循环tr每行
			
			String td[]=tr[i].split("~");//分割出td中的数据
			
			BeyondDesignmx mx=new BeyondDesignmx();//新建一个计划明细表实体类
			
			for (int j = 0; j < td.length; j++) {//循环td
				System.out.println(td[j]+"===================>"+j);

				
				BeyondWare wareid=new BeyondWare();
				wareid.setWareId(td[0]);//根据商品名称查询商品ID

				System.out.println("================="+wareid.getWareId());
				
				mx.setWare(wareid);//加入商品ID

				mx.setProdesign(prodes);//加入到生产计划的对象

				
				String moneystr=td[3].toString();//第2个表示是商品单价
				double money=Double.valueOf(moneystr);//转为double型
				mx.setDesmxMoney(money);//加入商品单价

				//第3个表示是单品数量
				String countstr=td[4].toString().split("/")[0];//格式是5/盒,取出5
				int count=Integer.valueOf(countstr);//转为Int型
				mx.setDesmxCount(count);//加入单品数量


				//设置时间
				mx.setDesmxTime(date);
				
				
				
			}
			//根据对象查询分店采购明细的方法
			int row = jhmx.insertSelective(mx);

			if(row>0){
				ssm.setMes(SsmMessage.SUCCESS_MES);
				ssm.setState(SsmMessage.SUCCESS);
			}else{
				ssm.setMes(SsmMessage.ERROR_MES);
				ssm.setState(SsmMessage.ERROR);
			}
		}

		return ssm;
	}


	/**
	 * @author  hujiaqian
	 * 删除生产计划和明细
	 * @param designId 生产计划ID
	 * @return
	 */
	@RequestMapping("/deleteprode")
	@ResponseBody
	public SsmMessage deleteprode(String designId){
		SsmMessage ssm=new SsmMessage();//new一个消息实体类
		//根据ID查询计划明细
		List<BeyondDesignmx> list=jhmx.select(designId);
		
		for (Iterator iterator = list.iterator(); iterator.hasNext();) {
			BeyondDesignmx beyondDesignmx = (BeyondDesignmx) iterator.next();
			//根据采购ID删除明细
			jhmx.deleteByPrimaryKey(beyondDesignmx.getDesmId());

		}
		//根据生产计划ID删除明细单
		int rows=beyondProdesignServic.deleteByPrimaryKey(designId);

		if(rows>0){
			ssm.setMes(SsmMessage.SUCCESS_MES);
			ssm.setState(SsmMessage.SUCCESS);
		}else{
			ssm.setMes(SsmMessage.ERROR_MES);
			ssm.setState(SsmMessage.ERROR);
		}
		return ssm;

	}

	
	
	
}